package tpgrandt.control;

import java.util.Vector;
import tpgrandt.UI.Validador;
import tpgrandt.dao.*;
import tpgrandt.excepciones.*;
import tpgrandt.varios.Pais;

/**
 * @version 1.0
 * @created 19-Jan-2010 18:07:42
 */
public class GestionUsuario {

	/**
	 * 
	 * @param tipo
	 * @param documento
	 * @param pass
	 */
	public static boolean autentificar(int tipo, int documento, String pass)
                throws ContraseñaInvalidaException, UsuarioInexistenteException {
            Usuario usr = UsuarioDAO.autentificar(tipo, documento, pass);
            Auditoria.auditarInicioSesion(tipo, documento);
            usr.desplegarInterfaz();
            return true;
        }

	/**
	 * 
	 * @param datos
	 */
	public static boolean registrarUsuario(tpgrandt.varios.Participante datos) 
                throws Excepcion {
            
            if(validar(datos)) {
                GeneralDAO.altaParticipante(datos);
                return true;
            }
            return false;
	}

        /**
	 * 
	 * @param datos
	 */
	private static boolean validar(tpgrandt.varios.Participante datos) throws Excepcion {
            Validador.isName(datos.getApellido());
            Validador.isName(datos.getNombres());
            Validador.isDocumento(datos.getDocumento());

            if(UsuarioDAO.buscarPersona(datos.getTipo(), datos.getDocumento()))
                throw new DocumentoExistenteException();
            
            Validador.isDate(datos.getFecha_nacimiento());
            Validador.isEmail(datos.getEmail());

            return true;
	}

	public static Vector<Pais> listarPaises() {
            return UbicacionDAO.listarPaises();
        }
}